package com.zmn.plat.model.entity.company;

import com.zmn.common.utils.pager.Operator;
import com.zmn.plat.common.util.encrypt.annotation.EncryptDecryptClass;
import com.zmn.plat.common.util.encrypt.annotation.EncryptDecryptField;
import lombok.*;

import java.util.Date;

/**
 * @author duanzuocai
 * @version v1.0
 * @modifier tanbiao 2019/09/06 新增身份和营业执照照片字段
 * @since 2018/10/16 11:30
 */
@EncryptDecryptClass(key = "companyId")
@Data
@Builder
@ToString
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class BaseCompany extends Operator {

    private static final long serialVersionUID = 4971272373910474374L;

    /**
     * 公司ID
     */
    private Integer companyId;

    /**
     * 公司编码
     */
    private String companyCode;

    /**
     * 公司名称（简称）
     */
    private String name;
    private String pinyinName;

    /**
     * 公司名称（工商注册名称）
     */
    private String fullName;
    private String pinyinFullName;

    /**
     * 平台标志：1.言而有信, 2.啄木鸟, 3.一步生活, 4川南环保
     */
    private Integer plat;

//    /**
//     * 一级组织架构Id
//     */
//    private Integer orgOneId;

    /**
     * 二级组织架构Id
     */
    private Integer orgTwoId;

//    /**
//     * 一级组织架构名称
//     */
//    private String orgOneName;

    /**
     * 二级组织架构名称
     */
    private String orgTwoName;

    /**
     * 所属组织架构ID（服务商等：无所属，有123级架构ID）
     */
    private Integer orgId;

    /**
     * 所属组织架构名称（服务商等：无所属，有123级架构ID）
     */
    private String orgName;

    /**
     * 所属子公司ID（只有4级服务商等，才会有所属子公司）
     */
    private Integer subCompanyId;

    /**
     * 所属子公司名称
     */
    private String subCompanyName;

    /**
     * 公司大类
     * @see com.zmn.plat.common.constant.CompanyConsts
     */
    private Integer type;

    /**
     * 公司小类
     * @see com.zmn.plat.common.constant.CompanyConsts
     */
    private Integer childType;

    /**
     * 分公司首字母大写表示
     */
    private String firstLetter;

    /**
     * 省ID
     */
    private Integer provinceId;

    /**
     * 市ID
     */
    private Integer cityId;

    /**
     * 行政区ID
     */
    private Integer countyId;

    /**
     * 街道、小区、路
     */
    private String street;

    /**
     * 详细地扯
     */
    private String address;

    /**
     * 联系人
     */
    private String contact;
    /**
     * 联系人手机1
     */
    @EncryptDecryptField
    private String mobile;
    /**
     * 联系人手机2
     */
    @EncryptDecryptField
    private String mobile2;
    /**
     * 联系人电话1
     */
    @EncryptDecryptField
    private String phone;
    /**
     * 联系人电话2
     */
    @EncryptDecryptField
    private String phone2;
    /**
     * 财务电话
     */
    @EncryptDecryptField
    private String financePhone;
    /**
     * 客服电话
     */
    @EncryptDecryptField
    private String servicePhone;
    /**
     * 技术电话
     */
    @EncryptDecryptField
    private String techPhone;

    /**
     * 公司简介
     */
    private String brief;

    /**
     * 营业执照号码
     */
    @EncryptDecryptField
    private String businessLicense;

    /**
     * 纳税人识别号
     */
    @EncryptDecryptField
    private String taxpayerIdentityNum;

    /**
     * 开票路由：1 新科讯、2 人工开票
     */
    private Integer invoicingRouting;

    /**
     * 税点
     */
    private Integer taxPoint;

    /**
     * 是否含税：1不含税，2含税(默认)
     */
    private Integer taxIncluded;

    /**
     * 法人姓名
     */
    private String legalPersonName;

    /**
     * 法人证件号码
     */
    @EncryptDecryptField
    private String legalPersonIdcard;

    /**
     * 法人图片URL
     */
    @EncryptDecryptField
    private String legalPersonImgsrc;

    /**
     * 法人身份证人像面
     */
    @EncryptDecryptField
    private String legalPersonIdcardFrontimg;

    /**
     * 法人身份证国徽面
     */
    @EncryptDecryptField
    private String legalPersonIdcardBackimg;

    /**
     * 营业执照图片1
     */
    @EncryptDecryptField
    private String businessLicenseImg1;

    /**
     * 营业执照图片2
     */
    @EncryptDecryptField
    private String businessLicenseImg2;

    /**
     * 营业执照图片3
     */
    @EncryptDecryptField
    private String businessLicenseImg3;


    /**
     * 开户行信息
     */
    private String bankName;

    /**
     * 银行卡号
     */
    @EncryptDecryptField
    private String bankCardNo;

    /**
     * 账户名称
     */
    private String bankCardName;

    /**
     * 状态：1停用，2启用
     */
    private Integer status;

    /** 公司注册时间 */
    private Date registTime;

    private String creater;
    private String updater;
    private Date createTime;
    private Date updateTime;

    /**
     * 描述: 排序
     **/
    private Integer sort;

    /**
     * 登录账号
     **/
    private String userName;

    /**
     * 三级组织架构ID（子公司：则有所属，和123级架构ID）
     */
    private Integer orgThrId;


    /**
     * 三级组织架构名称
     */
    private String orgThrName;

    /**
     * 公司等级：1平台公司、3子公司、4服务商等等
     */
    private Integer level;



}
